//
// Created by Administrator on 2017/3/19 019.
//

#ifndef TQ_ED_H
#define TQ_ED_H

#include "base.h"
#include "white_head.h"

#include <string.h>
#include <sys/types.h>


# define NELEM(x) ((int) (sizeof(x) / sizeof((x)[0])))

const char *UNSIGNATURE = "ILLEGAL_ACCESS";
const char *app_signature = "988A25E684766367BD7444F46010F6CB";
#define JNIREG_CLASS "com/whitehot/ndkmaster/NativeX"


/***
 * 获取一些app用到的信息
 * @return
 */
jstring get(JNIEnv *,jobject,jobject, jint);

/****
 * 加了身份验证码的MD5
 * @return
 */
jstring md5(JNIEnv *,jobject,jobject, jstring);

/****
 * 未加身份验证码的MD5
 * @return
 */
jstring _md5(JNIEnv *,jobject, jstring);

jstring sha1(JNIEnv *,jobject,jstring);
/****
 * 加了身份验证的aes加密
 * @return
 */
jstring aesEcbEncrypt(JNIEnv *,jobject,jobject, jstring);

/****
 * 未加身份验证的aes加密
 * @return
 */
jstring _aesEcbEncrypt(JNIEnv *,jobject, jstring, jstring);

/****
 * 未加身份验证的aes加密
 * @return
 */
jstring _aesCbcEncrypt(JNIEnv *,jobject, jstring, jstring, jstring);

/***
 * 加了身份验证的aes解密
 * @return
 */
jstring aesEcbDecrypt(JNIEnv *,jobject, jobject,jstring);
/***
 * 未加身份验证的aes解密
 * @return
 */
jstring _aesEcbDecrypt(JNIEnv *,jobject, jstring,jstring);
/***
 * 未加身份验证的aes解密
 * @return
 */
jstring _aesCbcDecrypt(JNIEnv *,jobject, jstring,jstring, jstring);

/***
 * 获取app签名长串，未做任何处理
 * @return
 */
jstring getSingleSign(JNIEnv *,jobject, jobject);

/***
 * 获取签名加密串
 * @param env
 * @param thiz
 * @param context
 * @return
 */
jstring getSign(JNIEnv *env, jobject thiz, jobject context);

/***
 * 身份验证
 * @return
 */
jboolean isLegalAccess(JNIEnv *,jobject, jobject);

jint checkSignature(JNIEnv *,jobject, jobject);

/***
 * 写字符串至文件
 * @param path
 * @param content
 * @return
 */
jint WriteString2File(JNIEnv *, jobject, jstring path, jstring content);

jstring ReadStringFFile(JNIEnv *, jobject, jstring path);

jstring getDeviceUniqueCode(JNIEnv *env, jobject thiz, jobject context);

jint DeleteDir(JNIEnv *env, jobject jclazz, jstring path);

jstring EncodeBase64(JNIEnv *env, jobject jclazz, jstring path);

jstring DecodeBase64(JNIEnv *env, jobject jclazz, jstring path);

#endif //TQ_ED_H

